<?php
@session_start();
$languaje=$_SESSION['languaje'];

include_once 'db_conecta_adodb.inc.php';
include_once 'lang/'.$languaje.'.php';


function selectGuests(){
	//$db->debug=true;
	//Busco el minimo y maximo
	$i=0;
	$rs=sql("SELECT (SELECT CHR_VALUE FROM u172676809_fcac.T_PARAMETERS
			WHERE CHR_PARAMETER='MIN_OCUP') AS MIN_OCUP,
			(SELECT CHR_VALUE FROM u172676809_fcac.T_PARAMETERS
			WHERE CHR_PARAMETER='MAX_OCUP') AS MAX_OCUP
			FROM DUAL","");
	$reg=siguiente($rs);
	$min_ocup=(int)$reg->MIN_OCUP;
	$max_ocup=(int)$reg->MAX_OCUP;

	$return='<select id="guests">';
	for ($i = $min_ocup; $i <= $max_ocup; $i++) {
    	$return=$return.'<option value="'.$i.'">'.$i.'</option>';
	}
	$return=$return.'</select>';
	
	echo $return;
}

function selectPick($table,$id,$value,$name,$msgSelect,$puntero,$disabled=false,$tabindex=''){
 	 	$id=strtoupper($id);
 	 	$value=strtoupper($value);

	 	if($disabled){
			$disabled="disabled='disabled'";
		}else{
			$disabled="";
		}
 	 	$combo = "<select $disabled id ='$name' name='$name' id='$name' class='form-control' $tabindex>";
		$combo.= '<option value="0">'.$msgSelect.'</option>';
		$rs=sql("SELECT ".$id.",".$value." FROM u172676809_fcac.".$table,"");
		if(!is_null($rs)){
    		while ($columna = siguiente($rs)){
				$combo.= "<option value='".$columna->$id."'";
				if ($columna->$id==$puntero)
					$combo.=' selected';
				//$cadena=updSpecialCarac($columna->$value);
				$combo.=">".$columna->$value."</option>";
			}
		}
		$combo.= "</select>";
		echo $combo;
}

function updSpecialCarac($string){

    $string = trim($string);

    $string = str_replace(
        array('á', 'à', 'ä', 'â', 'ª', 'Á', 'À', 'Â', 'Ä'),
        array('a', 'a', 'a', 'a', 'a', 'A', 'A', 'A', 'A'),
        $string
    );

    $string = str_replace(
        array('é', 'è', 'ë', 'ê', 'É', 'È', 'Ê', 'Ë'),
        array('e', 'e', 'e', 'e', 'E', 'E', 'E', 'E'),
        $string
    );

    $string = str_replace(
        array('í', 'ì', 'ï', 'î', 'Í', 'Ì', 'Ï', 'Î'),
        array('i', 'i', 'i', 'i', 'I', 'I', 'I', 'I'),
        $string
    );

    $string = str_replace(
        array('ó', 'ò', 'ö', 'ô', 'Ó', 'Ò', 'Ö', 'Ô'),
        array('o', 'o', 'o', 'o', 'O', 'O', 'O', 'O'),
        $string
    );

    $string = str_replace(
        array('ú', 'ù', 'ü', 'û', 'Ú', 'Ù', 'Û', 'Ü'),
        array('u', 'u', 'u', 'u', 'U', 'U', 'U', 'U'),
        $string
    );

    $string = str_replace(
        array('ñ', 'Ñ', 'ç', 'Ç'),
        array('n', 'N', 'c', 'C',),
        $string
    );

    //Esta parte se encarga de eliminar cualquier caracter extraño
    $string = str_replace(
        array("\\", "¨", "º", "-", "~",
             "#", "@", "|", "!", "\"",
             "·", "$", "%", "&", "/",
             "(", ")", "?", "'", "¡",
             "¿", "[", "^", "`", "]",
             "+", "}", "{", "¨", "´",
             ">", "< ", ";", ",", ":",
             ".", " "),
        '',
        $string
    );

    return $string;
}

function cantDays($checkin,$checkout)
{
    $days   = (strtotime($checkin)-strtotime($checkout))/86400;
    $days   = abs($days); 
    $days   = floor($days);     
    return $days;
}

function castDate(){
    if ($_SESSION['languaje']=='es')
        return "'%d/%m/%Y'";
    else
        return "'%m/%d/%Y'";
}

function formatDateLong($date,$lang){
    $date = date_create($date);
    //var_dump($date);
    if ($lang=='es'){
        $dias = array("Domingo","Lunes","Martes","Mi&eacute;rcoles","Jueves","Viernes","S&aacute;bado");
        $meses = array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");
        return $dias[$date->format('w')].", ".$date->format('d')." de ".$meses[$date->format('n')-1]. " de ".$date->format('Y');
    }else{
        return $date->S('l').", ".$date->format('m')." ".$date->format('d')." ".$date->format('Y');
    }
}

function armarComboSeleccione($table,$id,$value,$name,$msgSelect,$puntero,$disabled=false,$tabindex=''){
    $id=strtoupper($id);
     $value=strtoupper($value);

    if($disabled==true || $disabled=='true'){
        $disabled="disabled='disabled'";
    }else{
        $disabled="";
    }
    $combo = "<select $disabled id ='$name' name='$name' class='form-control' tabindex='$tabindex'>";
    $combo.= '<option value="0">'.$msgSelect.'</option>';
    $rs=sql("SELECT ".$id.",".$value." AS VALUE FROM u172676809_fcac.".$table,"");
    if(!is_null($rs)){
        while ($columna = siguiente($rs)){
            $combo.= "<option value='".$columna->$id."'";
            if ($columna->$id==$puntero)
                $combo.=' selected';
            //$cadena=updSpecialCarac($columna->$value);
            $combo.=">".$columna->VALUE."</option>";
        }
    }
    $combo.= "</select>";
    return $combo;
}

function armarComboPuntero($table,$id,$value,$name,$puntero,$disabled=false,$tabindex=''){
    $id=strtoupper($id);
    $value=strtoupper($value);

    if($disabled==true || $disabled=='true'){
        $disabled="disabled='disabled'";
    }else{
        $disabled="";
    }
    $combo = "<select $disabled id ='$name' name='$name' class='form-control' tabindex='$tabindex'>";
    $rs=sql("SELECT ".$id." AS IDENT,".$value." AS VALUE FROM u172676809_fcac.".$table,"");
    if(!is_null($rs)){
        while ($columna = siguiente($rs)){
            $combo.= "<option value='".$columna->IDENT."'";
            //var_dump($columna->IDENT);
            //var_dump($puntero);
            if ($columna->IDENT==$puntero)
                $combo.=' selected';
            //$cadena=updSpecialCarac($columna->$value);
            $combo.=">".$columna->VALUE."</option>";
        }
    }
    $combo.= "</select>";

    return $combo;
}

function returnScalar($table,$id,$idValue,$field){
    $rs=sql("SELECT ".$field." AS SCALAR FROM u172676809_fcac.".$table." WHERE ".$id."='".$idValue."'","");
    $columna=siguiente($rs);
    return $columna->SCALAR;
}

function convertDate($string){
    $year=substr($string,0,4);
    $month=substr($string,5,2);
    $day=substr($string,-2);

    return $day."-".$month."-".$year;
}

function generalizeDate($string,$languaje){
    if ($languaje=="es"){
        $day=substr($string,0,2);
        $month=substr($string,3,2);
        $year=substr($string,-4);
    }else{
        $month=substr($string,0,2);
        $day=substr($string,3,2);
        $year=substr($string,-4);
    }
    return $day."-".$month."-".$year;
}

function dateFromDBtoPick($string,$languaje){
    $year=substr($string,0,4);
    $month=substr($string,5,2);
    $day=substr($string,8,2);
    if ($languaje=="es"){
        return $day.'/'.$month.'/'.$year;
    }else{
        return $month.'/'.$day.'/'.$year;
    }
}

function dateTimeFromDBtoPick($string,$languaje){
    $year=substr($string,0,4);
    $month=substr($string,5,2);
    $day=substr($string,8,2);
    $time=substr($string,11,8);
    if ($languaje=="es"){
        return $day.'/'.$month.'/'.$year.' '.$time;
    }else{
        return $month.'/'.$day.'/'.$year.' '.$time;
    }
}

function dateFromPickToDB($string,$languaje){
    if ($languaje=="es"){
        $day=substr($string,0,2);
        $month=substr($string,3,2);
        $year=substr($string,-4);
    }else{
        $month=substr($string,0,2);
        $day=substr($string,3,2);
        $year=substr($string,-4);
    }
    return $year."-".$month."-".$day;
}

function calcPrice($from,$to,$guests,$idCurrency){

    //$db->debug=true;

    //Cantidad de dias de la reserva
    $rs_days=sql("SELECT DATEDIFF(STR_TO_DATE(?,'%d-%m-%Y'),STR_TO_DATE(?,'%d-%m-%Y')) AS DAYS FROM DUAL",array($to,$from));
    $days_row=siguiente($rs_days);
    $days=(int)$days_row->DAYS;
    //echo $days;

    //Busco el precio base/los precios base dependiendo de las fechas
    $rs_price=sql("SELECT DCM_PRICE,dt_from,dt_to from u172676809_fcac.T_PRICE_PERIOD 
                    where dt_from <= STR_TO_DATE(?,'%d-%m-%Y')
                    and dt_to >= STR_TO_DATE(?,'%d-%m-%Y') order by 2",array($to,$from));
    if(!is_null($rs_price)){
        $price_base=0;
        while ($price=siguiente($rs_price)){
            //si los periodos de precios son intermedios se suma un dia
            // si es el ultimo o unico periodo se resta un dia (el dia de salida)
            
            $to_period=convertDate($price->DT_TO);
            $from_period=convertDate($price->DT_FROM);
            $price_period=(int)$price->DCM_PRICE;
            $last_period=0;

            //verifico las fechas de inicio y fin de los periodos
            
            if (strtotime($from_period) < strtotime($from))
                $from_period=$from;
            if (strtotime($to_period) > strtotime($to))
                $to_period = $to;
            if (strtotime($to_period) >= strtotime($to))
                $last_period=1;

            //obtengo dias del periodo
            $rs_period_days=sql("SELECT DATEDIFF(STR_TO_DATE(?, '%d-%m-%Y'),STR_TO_DATE(?,'%d-%m-%Y')) AS DAYS FROM DUAL",array($to_period,$from_period));
            $days_period_row=siguiente($rs_period_days);
            $days_period=(int)$days_period_row->DAYS;
            if ($last_period==0)
                $days_period += 1;

            //precio por cantidad de dias
            $price_base+=$days_period*$price_period;
        }
    }

    //Parametros de configuracion
    $rs_parameters=sql("SELECT CHR_PARAMETER,CHR_VALUE FROM u172676809_fcac.T_PARAMETERS","");
    if(!is_null($rs_parameters)){
        while ($parameters=siguiente($rs_parameters)){
            switch ($parameters->CHR_PARAMETER){
                case 'MONTO_ACT_PRECIO':
                    $monto_act_precio=$parameters->CHR_VALUE;
                    break;
                case 'BASE_PRECIO_OCUPACION':
                    $base_precio_ocupacion=$parameters->CHR_VALUE;
                    break;
                case 'INCREM_COTIZ_OFICIAL':
                    $increm_cotiz_oficial=$parameters->CHR_VALUE;
                case 'IVA':
                    $iva=$parameters->CHR_VALUE;
                default:
                    break;
            }
        }
    }
    //Modifico el precio en base a la cotizacion y tipo de moneda
    //Busco el apocope de la moneda
    $rs_currency=sql("SELECT CHR_VALUE FROM u172676809_fcac.T_CURRENCY where id_currency=?",array($idCurrency));
    if(!is_null($rs_currency)){
        $currency=siguiente($rs_currency);
        $valCurrency=$currency->CHR_VALUE;
    }
    //Tipo de cambio
    $change=getTipoCambio($idCurrency);

    //Cantidad de huespedes extra a la base ocupacional
    $extra_guests=(int)$guests-(int)$base_precio_ocupacion;
    //echo 'extra '.$extra_guests;
    
    //Monto de actualizacion por dia (huespedes extra x monto de actualizacion por huesped)
    $upd_price_x_day=$extra_guests*(int)$monto_act_precio;
    //echo 'upd day '.$upd_price_x_day;

    //Monto de actualizacion para toda la reserva
    $upd_price=$upd_price_x_day*$days;
    //echo 'upd '.$upd_price;

    // Si la moneda es dolar no incremento el tipo de cambio
    // Formula del calculo: Precio en base a los intervalos de tiempo * el monto de actualizacion
    $price=$price_base+$upd_price;

    if ($change != 0)
        $price=calcIncremCotizOficial($price,$change);

    //Calculo del IVA
    $price_iva=$price*(floatval($iva/100));
    //echo 'iva '.$price_iva;
    //Sumatoria
    $price_final=$price+$price_iva;

    $return['price']=round($price,2);
    $return['iva']=round($price_iva,2);
    $return['final']=round($price_final,2);
    $return['currency']=$valCurrency;

    return $return;
}

function calcSaldo($idBook){
    //Esta funcion verifica el deposito registrado. Si está en una moneda disinta a la de la reserva
    // calcula el saldo con la cotizacion del dia
    //Busco los datos de la reserva
    $rs=sql("SELECT ID_CURRENCY,INT_DEPOSIT,ID_DEPOSIT_CURRENCY,DCM_DEPOSIT_VALUE,DCM_TOTAL
            FROM u172676809_fcac.T_BOOKS
            WHERE INT_ID_BOOK=?",array($idBook));
    $row=siguiente($rs);
    $id_currency=(int)$row->ID_CURRENCY;
    $deposit=(int)$row->INT_DEPOSIT;
    $id_currency_deposit=(int)$row->ID_DEPOSIT_CURRENCY;
    $deposit_value=floatval($row->DCM_DEPOSIT_VALUE);
    $total=floatval($row->DCM_TOTAL);

    //Se ha realizado el deposito
    if ($deposit==1){
        //La reserva y el deposito se han efectuado en la misma moneda
        if ($id_currency==$id_currency_deposit){
            $saldo=$total-$deposit_value;
        }else{//La moneda de la reserva es distinta a la del deposito
            //Busco el tipo de cambio de la moneda del deposito
            $tipo_cambio_deposit=getTipoCambio($id_currency_deposit);
            //Si el tipo de cambio es 0 quiere decir que el deposito se realizo
            //en la moneda por defecto (dolar). Debo buscar el tipo de cambio de la moneda
            //de la reserva y aplicar la inversa
            if ($tipo_cambio_deposit==0){
                $tipo_cambio_book=getTipoCambio($id_currency);
                $deposit_en_currency_book=$deposit_value * $tipo_cambio_book;
                $saldo=$total - $deposit_en_currency_book;
            }else{
                $saldo=$total - ($deposit_value/$tipo_cambio_deposit);
            }
        }
    }else{//No se ha realizado el deposito
        $saldo=$total;
    }
    return $saldo;
}

function sendMail($to,$from,$subject,$htmlBody){
    switch ($from) {
         case 'book':
            $from='booking@firstclassapartment.com.ar';
            break;
         case 'contact':
            $from='info@firstclassapartment.com.ar';
            break;
         default:
             break;
     }

    $body = ' 
    <html> 
    <head> 
       <title>'.$subject.'</title> 
    </head> 
    <body>
        <table width="100%" border="0" cellspacing="0" cellpadding="0">
            <tr style="background-image: linear-gradient(to bottom,#FFFFFF 0,#FFD700 150%);"><td align="center" style="padding:0.5em"><a href="http://firstclassapartment.com.ar"><img src="http://firstclassapartment.com.ar/public/img/head_mail.png"/></a></td></tr>
                <table width="100%" style="border-color: #FFD700;border-style: ridge;border-width: 3px;background-image: linear-gradient(to bottom,#1d1d1d 0,#222 100%);padding: 1em; border-top:none;">'
                .$htmlBody.
                '</table>
        </table> 
    </body> 
    </html> 
    '; 

    //para el envío en formato HTML 
    $headers = "MIME-Version: 1.0\r\n"; 
    $headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; 

    //dirección del remitente 
    $headers .= "From: First Class Apartments Cordoba <".$from.">\r\n"; 

    //dirección de respuesta, si queremos que sea distinta que la del remitente 
    //$headers .= "Reply-To: mariano@desarrolloweb.com\r\n"; 

    //ruta del mensaje desde origen a destino 
    //$headers .= "Return-path: holahola@desarrolloweb.com\r\n"; 

    //direcciones que recibián copia 
    //$headers .= "Cc: maria@desarrolloweb.com\r\n"; 

    //direcciones que recibirán copia oculta 
    //$headers .= "Bcc: pepe@pepe.com,juan@juan.com\r\n"; 

    //var_dump($body);

    mail($to,$subject,$body,$headers);
}

function hasValue($element){
    if($element == undefined || $element == null || $element == '')
        return false;
    else
        return true;
}

function isEmpty($element){
    if($element == null ||  $element == '')
        return true;    
    else
        return false;
}


function validChrField($field,$minLength){
    if (isset($field)){
        if (isEmpty($field))
            return false;
        if (strlen($field) <= $minLength)
            return false;
    }else{return false;}
    return true;
}

function validNumField($field){
    if (isset($field)){
        if (isEmpty($field))
            return false;
        if (!is_numeric($field))
            return false;
    }else{
        return false;}
    return true;
}

function validFloatField($field,$entero,$decimal){
    if (isset($field)){
        if (isEmpty($field))
            return false;
        if (!is_numeric($field))
            return false;
        if(is_float(floatval($field))){
            $field=floatval($field);
            //var_dump('Flotante');
            //extraigo parte decimal y entera y valido cantidad de caracteres
            //var_dump('entero: '.intval($field));
            //var_dump('decimal: '.($field-intval($field))*100);
            if (strlen(intval($field))>$entero)
                return false;
            $float=($field-intval($field))*100;
            if (strlen($float)>$decimal)
                return false;
        }else{
            //var_dump('NO Flotante');
            if (strlen($field)>$entero)
                return false;
        }
    }else{
        return false;}
    return true;
}

function validMailField($email){ 
    $mail_correcto = false; 
    //compruebo unas cosas primeras 
    if ((strlen($email) >= 6) && (substr_count($email,"@") == 1) && (substr($email,0,1) != "@") && (substr($email,strlen($email)-1,1) != "@")){ 
        if ((!strstr($email,"'")) && (!strstr($email,"\"")) && (!strstr($email,"\\")) && (!strstr($email,"\$")) && (!strstr($email," "))) { 
            //miro si tiene caracter . 
            if (substr_count($email,".")>= 1){ 
                //obtengo la terminacion del dominio 
                $term_dom = substr(strrchr ($email, '.'),1); 
                //compruebo que la terminación del dominio sea correcta 
                if (strlen($term_dom)>1 && strlen($term_dom)<5 && (!strstr($term_dom,"@")) ){ 
                    //compruebo que lo de antes del dominio sea correcto 
                    $antes_dom = substr($email,0,strlen($email) - strlen($term_dom) - 1); 
                    $caracter_ult = substr($antes_dom,strlen($antes_dom)-1,1); 
                    if ($caracter_ult != "@" && $caracter_ult != "."){ 
                        $mail_correcto = true; 
                    } 
                } 
            } 
        } 
    } 
    return $mail_correcto;
}

function verifBookigData($name,$lastName,$idCountry,$email,$confirmEmail,$phone){

    if (!validChrField($name,2)){               
        $return=array('html' => "<script>$('#inputName').focus();</script>",
                      'msg' => $book_msg_data_name,
                      'type' => 'a');
        return $return;
    }
    if (!validChrField($lastName,2)){
        $return=array('html' => "<script>$('#inputLastName').focus();</script>",
                        'msg' => $book_msg_data_lastname,
                        'type' => 'a');
        return $return;
    }
    if ($idCountry <= '0'){
        $return=array('html' => "<script>$('#inputCountry').focus();</script>",
                        'msg' => $book_msg_data_country,
                        'type' => 'a');
        return $return;
    }
    if (!validMailField($email)){
        $return=array('html' => "<script>$('#inputEmail').focus();</script>",
                        'msg' => $book_msg_data_mail,
                        'type' => 'a');
        return $return;
    }
    if (!validMailField($confirmEmail)){
        $return=array('html' => "<script>$('#inputConfirmEmail').focus();</script>",
                        'msg' => $book_msg_data_conf_mail,
                        'type' => 'a');
        return $return;
    }
    if ($email != $confirmEmail){
        $return=array('html' => "<script>$('#inputConfirmEmail').focus();</script>",
                        'msg' => $book_msg_data_mail_match,
                        'type' => 'a');
        return $return;
    }
    if (!validChrField($phone,5)){
        $return=array('html' => "<script>$('#inputName').focus();</script>",
                        'msg' => $book_msg_data_phone,
                        'type' => 'a');
        return $return;
    }

    return '';
}

function checkAvailability($checkin,$checkout,$code){
    if ($code==null){
        $rs=sql("SELECT COUNT(*) AS CANT
                FROM u172676809_fcac.T_BOOKS
                WHERE DT_CHECK_IN < STR_TO_DATE(?,'%d-%m-%Y') AND DT_CHECK_OUT > STR_TO_DATE(?,'%d-%m-%Y')",array($checkout,$checkin));
    }else{
        $rs=sql("SELECT COUNT(*) AS CANT
                FROM u172676809_fcac.T_BOOKS
                WHERE DT_CHECK_IN < STR_TO_DATE(?,'%d-%m-%Y') AND DT_CHECK_OUT > STR_TO_DATE(?,'%d-%m-%Y')
                AND CONVERT(CHR_BOOK_CODE using utf8) collate utf8_spanish_ci <> ?",array($checkout,$checkin,$code));
    }
    $reg=siguiente($rs);
    $cantidad_reserva=(int)$reg->CANT;

    //Busco dias anulados
    //$db->debug=true;
    $rs=sql("SELECT COUNT(*) AS CANT
                FROM u172676809_fcac.T_CANCEL_DAYS
                WHERE DT_DATE >= STR_TO_DATE(?,'%d-%m-%Y') AND DT_DATE < STR_TO_DATE(?,'%d-%m-%Y')",array($checkin,$checkout));
    $reg=siguiente($rs);
    $cantidad_anulados=(int)$reg->CANT;

    return ($cantidad_reserva+$cantidad_anulados);
}

function verifBookingData($name,$lastName,$idCountry,$email,$confirmEmail,$phone){
    if (!validChrField($name,2)){           
        $return['campo']='inputName';
        $return['msg']=$book_msg_data_name;
        
        return $return;
    }
    if (!validChrField($lastName,2)){
        $return['campo']='inputLastName';
        $return['msg']=$book_msg_data_lastname;
        
        return $return;
    }
    if ($idCountry<=0){
        $return['campo']='inputCountry';
        $return['msg']=$book_msg_data_country;
        return $return;
    }
    if (!validMailField($email)){
        $return['campo']='inputEmail';
        $return['msg']=$book_msg_data_mail;
        return $return;
    }
    if (!validMailField($confirmEmail)){
        $return['campo']='inputConfirmEmail';
        $return['msg']=$book_msg_data_conf_mail;
        return $return;
    }
    if ($email != $confirmEmail){
        $return['campo']='inputConfirmEmail';
        $return['msg']=$book_msg_data_mail_match;
        return $return;
    }
    if (!validChrField($phone,5)){
        $return['campo']='inputName';
        $return['msg']=$book_msg_data_phone;
        return $return;
    }

    return '';
}

function getEstado($checkout,$cancel,$fecCancel,$expDate,$deposit,$totPay){
    //defino la clase de la fila
    $archivo="";
    $title="";
    //Preguntar por fecha- las pendientes se analizan, las otras se dejan de lado
    //var_dump(date('d-m-Y'));
    $estado='';
    if (date($checkout) < date('Y-m-d H:i:s')){//Fecha Fin anterior a la fecha actual
        //$style='style="background-color:#A7A7A7"';
        $estado='finalizada';
        if ($totPay=='0')
            $estado='vencida';//Vencida
        if ($cancel=='1')//Cancelada
            $estado='cancelada';        
    }elseif ($cancel=='1'){//Cancelada
        $estado='cancelada';}
    elseif (date($expDate) < date('Y-m-d H:i:s')){
        $estado='vencida';}
    elseif ($deposit=='1'){//Deposito realizado
        $estado='depositada';
        if ($totPay=='1')//Pago Total
            $estado='liquidada';
    }else
        $estado='pendiente';

    switch($estado){
        case 'cancelada':
            $archivo="cancelada_table";
            $title="Cancelada el ".dateFromDBtoPick($fecCancel,'es');
            break;
        case 'finalizada':
            $archivo='finalizada_table';
            $title="Finalizada";
            break;
        case 'depositada':
            $archivo="depositada_table";
            $title="Con Dep&oacute;sito Parcial";
            break;
        case 'liquidada':
            $archivo="liquidada_table";
            $title="Liquidada / Pagada";
            break;
        case 'pendiente':
            $archivo="depopendiente_table";
            $title="Pendiente de Dep&oacute;sito";
            break;
        case 'vencida':
            $archivo="vencida_table";
            $title="Vencida el ".dateFromDBtoPick($expDate,'es');
            break;
    }

    return array('estado' => $estado,
                    'archivo' => $archivo,
                    'title' => $title);
}

function getDateRate($idBook){
    //Si es 0 corresponde a la fecha actual --> Debo sumar incremento
    if ($idBook == 0){
        $fechaAltaLong=formatDateLong(date('Y-m-d'),'es');
        //var_dump($fechaAlta);
        $rs=sql("SELECT C1.CHR_VALUE DE,C2.CHR_VALUE A,H.DCM_VALUE VALOR
                FROM u172676809_fcac.T_TRADE H,u172676809_fcac.T_CURRENCY C1,u172676809_fcac.T_CURRENCY C2
                WHERE  H.ON_CURRENCY=C1.ID_CURRENCY
                AND H.ID_CURRENCY=C2.ID_CURRENCY","");
        //Incremento a la cotizacion oficial
        $rs_parameters=sql("SELECT CHR_PARAMETER,CHR_VALUE FROM u172676809_fcac.T_PARAMETERS","");
        if(!is_null($rs_parameters)){
            while ($parameters=siguiente($rs_parameters)){
                switch ($parameters->CHR_PARAMETER){
                    case 'INCREM_COTIZ_OFICIAL':
                        $increm_cotiz_oficial=$parameters->CHR_VALUE;
                        break;
                    default:
                        break;
                }
            }
        }
    }else{
        //Busco la fecha de alta de la reserva
        $rs=sql("SELECT B.`DT_ENTRY`
                    FROM `u172676809_fcac`.`T_BOOKS` B WHERE B.`INT_ID_BOOK`=?",array($idBook));
        $reg=siguiente($rs);
        $fechaAlta=$reg->DT_ENTRY;
        $fechaAltaLong=formatDateLong($fechaAlta,'es');

        //Busco los valores de tipo de cambio para esa fecha --> Ya incluye el incremento
        $rs=sql("SELECT C1.CHR_VALUE DE,C2.CHR_VALUE A,H.DCM_VALUE VALOR
                FROM u172676809_fcac.T_HR_TRADE H,u172676809_fcac.T_CURRENCY C1,u172676809_fcac.T_CURRENCY C2
                WHERE  H.ON_CURRENCY=C1.ID_CURRENCY
                AND H.ID_CURRENCY=C2.ID_CURRENCY
                AND H.DT_DATE=STR_TO_DATE(?,'%Y-%m-%d')",array($fechaAlta));
    }
    $result='&lt;div class=&quot;row&quot;&gt;';
    $result.='&lt;div class=&quot;col-xs-12&quot;&gt;&lt;h2&gt;Tipo de Cambio al '.$fechaAltaLong.'&lt;/div&gt;';
    $result.='&lt;/div&gt;';
    while($regTrade=siguiente($rs)){
        //Si es la cotizacion del dia debo sumar incremento, el historico se guarda incrementado
        if ($idBook == 0)
            $valor=calcIncremCotizOficial(1,$regTrade->VALOR);
        else
             $valor=floatval($regTrade->VALOR);
        $result.='&lt;div class=&quot;row&quot;&gt;';
        $result.='&lt;div class=&quot;col-xs-3&quot;&gt;&lt;p style=&quot;text-align:right;&quot; class=&quot;rates-price&quot;&gt;'.$regTrade->DE.' 1&lt;/div&gt;';
        $result.='&lt;div class=&quot;col-xs-2&quot;&gt;&lt;img src=&quot;../img/panel/flecha_derecha_trade.png&quot;/&gt;&lt;/div&gt;';
        $result.='&lt;div class=&quot;col-xs-7&quot;&gt;&lt;p style=&quot;text-align:left;&quot; class=&quot;rates-price&quot;&gt;'.$regTrade->A.' '.$valor.'&lt;/div&gt;';
        $result.='&lt;/div&gt;';}
    
    return $result;
}

function getTipoCambio($idCurrency){
    $rs_trade=sql("SELECT DCM_VALUE FROM u172676809_fcac.T_TRADE WHERE id_currency=?",array($idCurrency));
    if (!is_null($rs_trade) && $rs_trade->RecordCount() > 0){ //Si encuentra la moneda es distinta a la moneda por defecto
        //Seteo el valor de cambio
        $trade=siguiente($rs_trade);
        $change=floatval($trade->DCM_VALUE);

        //Incremento a la cotizacion oficial
        $change=floatval(calcIncremCotizOficial(1,$change));

    }else{
        $change=(int)0;
    }
    return $change;
}

function calcIncremCotizOficial($precioBase,$cambio){
    
    //busco incremento a la cotiz oficial
    $rs_parameters=sql("SELECT CHR_PARAMETER,CHR_VALUE FROM u172676809_fcac.T_PARAMETERS","");
    if(!is_null($rs_parameters)){
        while ($parameters=siguiente($rs_parameters)){
            switch ($parameters->CHR_PARAMETER){
                case 'INCREM_COTIZ_OFICIAL':
                    $increm_cotiz_oficial=$parameters->CHR_VALUE;
                    break;
                default:
                    break;
            }
        }
    }

    $price=round(floatval($precioBase*($cambio*(1+($increm_cotiz_oficial/100)))),4);
    return $price;
}

function calcMinDeposit($total){
    $porc_min_deposit=getParamGral('PORC_MIN_DEPOSITO');
    return round($total*$porc_min_deposit/100,2);
}

function getPricePeriod(){
    $rs=sql("SELECT ID_PRICE_PERIOD,DT_FROM,DATE_ADD(DT_TO,INTERVAL 1 DAY) AS DT_TO,DCM_PRICE FROM u172676809_fcac.T_PRICE_PERIOD WHERE DT_TO >= DATE_FORMAT(CURDATE(), '%Y-%m-01') order by 1","");
    $period="";
    while ($row=siguiente($rs)){
        $color = sprintf('#%06x',rand(0,16777215));
        $period.="{id: '".$row->ID_PRICE_PERIOD."',title:'U\$S ".$row->DCM_PRICE."',start:'".$row->DT_FROM."',end:'".$row->DT_TO."',allDay:'true',color:'".$color."'},";
    }
    //quito la ultima coma
    $period = substr($period, 0, -1);
    return $period;
}

function updPricePeriod($desde,$hasta,$precio,$id){
    //comenzarTransaccion();
    //Si el Id es distinto de cero se trata de una modificacion de un periodo existente
    if ($id==0)
        $rs = sql("SELECT ID_PRICE_PERIOD,DT_FROM,DT_TO,DCM_PRICE FROM `u172676809_fcac`.`T_PRICE_PERIOD` WHERE DT_TO >= STR_TO_DATE(?,'%Y-%m-%d') AND DT_FROM <= STR_TO_DATE(?,'%Y-%m-%d')",array($desde,$hasta));
    else
        $rs = sql("SELECT ID_PRICE_PERIOD,DT_FROM,DT_TO,DCM_PRICE FROM `u172676809_fcac`.`T_PRICE_PERIOD` WHERE DT_TO >= STR_TO_DATE(?,'%Y-%m-%d') AND DT_FROM <= STR_TO_DATE(?,'%Y-%m-%d') AND ID_PRICE_PERIOD <> ?",array($desde,$hasta,$id));
    
    while($row=siguiente($rs)){
        //Borrar -> El periodo de BD está incluido en el nuevo periodo
        if (date($row->DT_FROM) >= date($desde) && date($row->DT_TO) <= date($hasta)){
            sql("DELETE FROM `u172676809_fcac`.`T_PRICE_PERIOD` WHERE ID_PRICE_PERIOD = ?",array($row->ID_PRICE_PERIOD)); 
        }else{
            if (date($row->DT_TO) <= date($hasta)){
                //Actualizar: mover la fecha de fin del periodo de BD un día antes del nuevo periodo
                $days=cantDays(date($desde),date($row->DT_TO))+1;
                sql("UPDATE `u172676809_fcac`.`T_PRICE_PERIOD` SET DT_TO = DATE_SUB(DT_TO,INTERVAL ? DAY) WHERE ID_PRICE_PERIOD = ?",array($days,$row->ID_PRICE_PERIOD));
            }else{
                //El nuevo periodo esta incluido en el de bd. actualizar e insertar uno nuevo
                if (date($row->DT_FROM) <= date($desde)){
                    if (date($row->DT_FROM) == date($desde)){
                        sql("DELETE FROM `u172676809_fcac`.`T_PRICE_PERIOD` WHERE ID_PRICE_PERIOD = ?",array($row->ID_PRICE_PERIOD));
                    }else{
                        $days=cantDays(date($row->DT_FROM),date($desde))-1;
                        sql("UPDATE `u172676809_fcac`.`T_PRICE_PERIOD` SET DT_TO = DATE_ADD(DT_FROM,INTERVAL ? DAY) WHERE ID_PRICE_PERIOD = ?",array($days,$row->ID_PRICE_PERIOD));
                    }
                    sql("INSERT INTO `u172676809_fcac`.`T_PRICE_PERIOD` (DT_FROM,DT_TO,DCM_PRICE) VALUES (DATE_ADD(STR_TO_DATE(?,'%Y-%m-%d'),INTERVAL 1 DAY),?,?)",array($hasta,$row->DT_TO,$row->DCM_PRICE));
                }else{//Actualizar: mover la fecha de inicio del periodo de BD un día despues del nuevo periodo
                    $days=cantDays(date($row->DT_FROM),date($hasta))+1;
                    sql("UPDATE `u172676809_fcac`.`T_PRICE_PERIOD` SET DT_FROM = DATE_ADD(DT_FROM,INTERVAL ? DAY) WHERE ID_PRICE_PERIOD = ?",array($days,$row->ID_PRICE_PERIOD));
                }
            }
        }
    }

    if ($id==0)
        $rs = sql("INSERT INTO `u172676809_fcac`.`T_PRICE_PERIOD` (DT_FROM,DT_TO,DCM_PRICE) VALUES (STR_TO_DATE(?,'%Y-%m-%d'),STR_TO_DATE(?,'%Y-%m-%d'),?)",array($desde,$hasta,$precio));
    else
        sql("UPDATE `u172676809_fcac`.`T_PRICE_PERIOD` SET DT_TO = STR_TO_DATE(?,'%Y-%m-%d'), DT_FROM = STR_TO_DATE(?,'%Y-%m-%d'),DCM_PRICE=? WHERE ID_PRICE_PERIOD = ?",array($desde,$hasta,$precio,$id));
    //finalizarTransaccion();
    return true;
}

function setSysNew($type,$description){
    // Funcion que guarda novedades del sistema
    sql("INSERT INTO `u172676809_fcac`.`T_SYS_NEWS` (DT_DATE,CHR_TYPE,CHR_DESCRIPTION) VALUES (SYSDATE(),?,?)",array($type,$description));
}

function get_color($name) {
    $hash = md5($name);

    $color1 = hexdec(substr($hash, 8, 2));
    $color2 = hexdec(substr($hash, 4, 2));
    $color3 = hexdec(substr($hash, 0, 2));
    if($color1 < 128) $color1 += 128;
    if($color2 < 128) $color2 += 128;
    if($color3 < 128) $color3 += 128;
    
    return "#" . dechex($color1) . dechex($color2) . dechex($color3);
}

function getParamGral($parametro){
    $rs=sql("SELECT CHR_VALUE FROM u172676809_fcac.T_PARAMETERS WHERE CHR_PARAMETER=?",array($parametro));
    $row=siguiente($rs);
    return $row->CHR_VALUE;
}

function getNovedades(){
    $rs=sql("SELECT COUNT(*) AS CANT FROM u172676809_fcac.T_SYS_NEWS WHERE INT_READ=0","");
    $row=siguiente($rs);

    $result='&lt;h2&gt;'.$row->CANT.' Novedades Sin Leer!&lt;/div&gt;';
    return $result;
}

function getCantNovedades(){
    $rs=sql("SELECT COUNT(*) AS CANT FROM u172676809_fcac.T_SYS_NEWS WHERE INT_READ=0","");
    $row=siguiente($rs);

    return $row->CANT;
}

function listarArchivos( $path ){
    // Abrimos la carpeta que nos pasan como parámetro
    $archivos=array();
    $dir = opendir($path);
    // Leo todos los ficheros de la carpeta
    while ($elemento = readdir($dir)){
        // Tratamos los elementos . y .. que tienen todas las carpetas
        if( $elemento != "." && $elemento != ".."){
            // Si es una carpeta
            if(!is_dir($path.$elemento) ){
                // Muestro el fichero
                array_push($archivos, $elemento);
            }
        }
    }
    return $archivos;
}